import javax.swing.JButton;
import java.lang.Math;
import java.util.Random;

public class Juego {
	private static int turno = 0;

	// Modo de juego 1 = Humano vs pc. 2 = Humano vs Humano
	private static int modoDeJuego = 0;

	public Juego(int modo) {
		this.setModoDeJuego(modo);

	}

	public static int getModoDeJuego() {
		return modoDeJuego;
	}

	public static void setModoDeJuego(int modoDeJuego) {
		Juego.modoDeJuego = modoDeJuego;
	}

	public void jugar() {
		switch (modoDeJuego) {
		// Humano vs pc
		case 1:
			this.setTurno(2);
			break;
		// Humano vs Humano
		case 2:
			this.setTurno(1);
			break;
		}
	}

	public static int getTurno() {
		return turno;
	}

	public static void setTurno(int turno) {
		Juego.turno = turno;
	}

	public void turnoMaquina(Boton[] lista) {
		Random rand = new Random();
		boolean seguir = true;
		while (seguir) {
			Boton aux = lista[rand.nextInt(9)];
			if (aux.isVacio()) {
				aux.setLabel("O");
				seguir = false;
			}
		}
	}

	public String comprobarGanadorJugador(Boton[] botones) {
		String ganador = "";

		int fil1 = botones[0].getNumero() + botones[1].getNumero()
				+ botones[2].getNumero();
		int fil2 = botones[3].getNumero() + botones[4].getNumero()
				+ botones[5].getNumero();
		int fil3 = botones[6].getNumero() + botones[7].getNumero()
				+ botones[8].getNumero();

		int col1 = botones[0].getNumero() + botones[3].getNumero()
				+ botones[6].getNumero();
		int col2 = botones[1].getNumero() + botones[4].getNumero()
				+ botones[7].getNumero();
		int col3 = botones[2].getNumero() + botones[5].getNumero()
				+ botones[8].getNumero();

		int diag1 = botones[0].getNumero() + botones[4].getNumero()
				+ botones[8].getNumero();
		int diag2 = botones[2].getNumero() + botones[4].getNumero()
				+ botones[6].getNumero();

		if (fil1 == 3 || fil2 == 3 || fil3 == 3 || col1 == 3 || col2 == 3
				|| col3 == 3 || diag1 == 3 || diag2 == 3) {
			ganador = "El ganador es el jugador 1";
			return ganador;
		} else if (fil1 == -3 || fil2 == -3 || fil3 == -3 || col1 == -3
				|| col2 == -3 || col3 == -3 || diag1 == -3 || diag2 == -3) {
			if (this.modoDeJuego == 2)
				ganador = "El ganador es el jugador 2";
			if (this.modoDeJuego == 1)
				ganador = "El ganador es La Pc";
			return ganador;
		} else {
			ganador = "No hay ganadores En esta ronda";
			return ganador;
		}
		
	}

	public boolean isTerminado(Boton[] botones, String texto) {
		if (texto.equalsIgnoreCase("No hay ganadores En esta ronda")) {
			for (int i = 0; i < botones.length; i++) {
				if (botones[i].isVacio()) {
					return false;
				}
			}
		}
		return true;
	}
}
